Communications networks are constituted by a plurality of terminals or stations linked to one another by a transmission link (whose transmission medium is constituted of fiber optics, in the case of an FDDI-type network). A computer linked to such a network is considered to be a terminal.
Many modern networks are known which function according to the same reference model. The best-known are the Open System Interconnection (OSI) or Transmission Control Protocol/Internet Protocol (TCP/IP) reference models. These models are similar relative to the definition of the architecture of these networks in the form of standardized layers. Thus in the OSI model, there are 7 different activity layers, with the lowest layer (layer 1) corresponding to the physical transmission of signals, while the highest layer corresponds to the functions executed by the application programs and the users of the network in question.
Furthermore, within a network, the information messages emitted by the various stations are constituted by a plurality of frames. Every frame is constituted of usable data framed in time by control characters located at its head and foot.
The trend in technological development of networks, along with the utilization of more and more terminals, leads to developing programmed communications processors whose purpose is to reduce the load on the central processing unit by executing part of the management of its communications with the other stations in the network.
In addition, the extremely rapid development of communications networks and information processing systems leads to connecting computers of different types using different operating systems in the same network.
The object of a communications processor, which is also called a data transmission system, is to adapt the conditions for transmission of information in the bus of the computer to which it is associated, to the transmission conditions in the network, these transmission conditions being totally different. Furthermore, this data transmission system allows the different computer operating systems to dialogue with one another. In particular, it allows the various communications layers of the operating system of a first computer to dialogue with the various communications layers of the operating systems of other computers connected to the same network.
For example, one such communications processor is known, which is also called a data transmission system. Such a processor has the simplified architecture shown in FIG. 1. This type of architecture is described for example in the French Patent Application No. 92 13653 (corresponding to U.S. Ser. No. 08/143,130), filed by the present applicant Nov. 13, 1992 under the title "Outil de simulation d'un code de reseau" ["Tool for simulating a network code"].
Such a communications processor, known as a Network Communication Controller (NCC), makes it possible to assure the management of the data transfer between a computer HOST, equipped with an internal bus PSB and whose operating system is designated by OS, and a network RE, for example of the FDDI type. The bus PSB is for example a bus known as MULTIBUS II (trademark registered by INTEL) which is standardized by IEEE Standard 1296 (Institute of Electrical and Electronic Engineers).
The communications processor NCC comprises the following three essential parts:
the first part, called GPU (acronym for General Purpose Unit), is for example the model described in patent application No. 91 08908 (corresponding to U.S. Ser. No. 07/913,477) which BULL S. A. filed on Jul. 15, 1991, under the title "Dispositif universel de couplage d'un bus d'ordinateur a un controleur d'un groupe de peripheriques" ["Universal device for coupling a computer bus with a controller of a group of peripherals"]. This part is equipped with an operating system, for example the type described in the patent application No. 91 08907 (corresponding to U.S. Ser. No. 07/913,366) filed by the same applicant on the same day as the preceding, under the title "Systeme d'exploitation pour dispositif universel de couplage d'un bus d'ordinateur a une liason specifique d'un reseau" ["Operating system for a universal device for coupling a computer bus to a specific link of a network"]. The object of this part GPU is to assure the initialization of the coupler assembly NCC on one hand, and to assure the dialogue with the computer HOST by means of the bus PSB on the other hand, while complying with the operating standards of this bus and conforming to the nature of the operating system OS of the computer HOST. In addition, the part GPU assures the physical transfer of data between the bus PSB and the second part Device Adapter (DEA), which can be called an adapter device, which is directly connected to the network RE. The function of this part DEA is described below. PA1 The part DEA is for example either the type described in the French patent No. 2 650 412 (corresponding to U.S. Pat. No. 5,237,659) whose title is "dispositif passerelle de connexion d'un bus d'ordinateur a un reseau fibre optique en forme d'anneau" ["Bridge device for connecting a bus with a fiber optic network in ring form"], in terms of the hardware, or that described in the patent application No. 92 11054 (corresponding to U.S. Ser. No. 08/121,295), in terms of the software. This part DEA assures the physical transmission of data between the part GPU and the network RE, as well as the physical connection to the network. PA1 The third part, called Protocol Processing Attachment (PPA), is in fact a communications coprocessor that is more specifically intended for managing the various telecommunications layers in the OSI model, or in the TCP/IP model. As far as both the OSI model and the TCP/IP model are concerned, the part PPA assures the management of the communications layers C4, C3, C2, which are the transport, network, and data link layers, respectively. PA1 Unix System V, Release 4--STREAMS Programmer's Guide, ATT issue 1. PA1 Unix System V, Release 3.2--STREAMS Programmer's Guide, ATT (ISBN: 0-13-944810-1): 1989. PA1 1. A universal coupling device linked to the bus which communicates by means of an interface with an adaptor device connected to the network, PA1 device, and which is connected to the latter by means of a second bus, PA1 2. A communications coprocessor linked to the universal coupling device for managing at least the transport, network, and data link layers,
The communications layers C2 through C4 communicate with one another by means of primitive functions which permit two adjacent layers to dialogue with one another. Thus the two layers C2 and C3 communicate with one another by means of the set of functions ST2, while the layers C3 and C4 communicate by means of the set of functions ST3. In addition, C4 communicates with the outside world, that is, with external applications for example, by means of an interface SH.
In a preferred embodiment of the invention, the sets of functions ST2, ST3, SH are functions that are known in current practice as STREAMS. These standard functions are defined for example in the following documents:
In the exemplary embodiment shown in FIG. 1, when the computer HOST sends a message to the network RE, or when a message originates in the network RE, it passes through to the layers C2 through C4 of PPA by means of a first in first out (FIFO) memory, namely FF.sub.1 or FF.sub.2, depending on whether this message is transmitted to DEA or to GPU respectively. When this involves performing a log-on that originates from the computer HOST, this log-on passes through the interface SH, while once the connection is established, when it involves sending messages to all or some of the stations connected to the network, these messages pass directly to the layers C4 through C2.
The layers C2 through C4 and the various functions ST2, ST3, and SH, as well as the operating system of the part PPA, constitute the communications layer code CC which is used by the communications coprocessor PPA.
The essential role of the communications coprocessor PPA is to relieve the host system of the management of communications layers that it normally executes, while retaining extremely high performance in the communications processor NCC, in terms of the data transmission speed to or from the network.
The present invention relates to a particularly advantageous mode of embodiment of the communications coprocessor PPA which makes it possible to obtain precisely the performance required in terms of speed.
According to the invention, the system for transmission of data between a computer bus and a network includes:
the universal device including: PA2 is characterized in that the coprocessor includes:
a first microprocessor associated with a first memory which runs an operating system contained within this memory, PA3 means for the transfer of frames from the bus to the adapter device and vice versa, which includes a dual port memory disposed between the bus and the adapter PA3 a second microprocessor which implements the communications protocol corresponding to each layer while providing each frame with control data conforming to this protocol, its data bus being connected to the second bus and its control bus being connected to the internal bus of the first microprocessor, PA3 a third microprocessor which manages the transfer of data between the second microprocessor and the dual port memory by means of direct memory access.